package br.ucb.cesbdao.controller;

import javax.swing.JDialog;
import javax.swing.JFrame;

import org.apache.log4j.Logger;

import br.ucb.cesbdao.enuns.EnumControleJanela;
import br.ucb.cesbdao.servicos.Servicos;

public class ControladorJanelas {

	private static Logger logger = Servicos.carregaLog(ControladorJanelas.class);
	
	public static JFrame invokeJFrame(String JanelaAtual, String proximaJanela) {
		if(JanelaAtual != null && !JanelaAtual.isEmpty()){
			logger.info("SAINDO DA JANELA - "+JanelaAtual);
		}
		ControladorJanelas controladora = new ControladorJanelas();
		Object janela = controladora.buscaJanela(proximaJanela);
		JFrame janelaRetorno = null;
		if(janela instanceof JFrame){
			janelaRetorno = (JFrame) janela;
			if(janelaRetorno != null){
				janelaRetorno.setVisible(true);
				logger.info("INDO PARA A JANELA - "+janelaRetorno.getClass().getSimpleName());
			}
		}
		return janelaRetorno;
	}
	
	public static JDialog invokeJDialog(String JanelaAtual, String proximaJanela) {
		if(JanelaAtual != null && !JanelaAtual.isEmpty()){
			logger.info("SAINDO DA JANELA - "+JanelaAtual);
		}
		ControladorJanelas controladora = new ControladorJanelas();
		Object janela = controladora.buscaJanela(proximaJanela);
		JDialog janelaRetorno = null;
		if(janela instanceof JDialog){
			janelaRetorno = (JDialog) janela;
			if(janelaRetorno != null){
				janelaRetorno.setVisible(true);
				logger.info("INDO PARA A JANELA - "+janelaRetorno.getClass().getSimpleName());
			}
		}
		return janelaRetorno;
	}

	private Object buscaJanela(String janela) {
		return EnumControleJanela.getJanela(janela);
	}
}
